export class Foo {
  // 默认配置下，参数不允许使用readonly
  public constructor(public readonly name: string) {}
}

class Foo {
  constructor(readonly name: string) {}
}

class Foo {
  constructor(private name: string) {}
}

class Foo {
  constructor(protected name: string) {}
}

class Foo {
  constructor(public name: string) {}
}

class Foo {
  constructor(private readonly name: string) {}
}

class Foo {
  constructor(protected readonly name: string) {}
}

class Foo {
  constructor(public readonly name: string) {}
}

class Foo {
  constructor(
    public name: string,
    age: number,
  ) {}
}

class Foo {
  constructor(
    private name: string,
    private age: number,
  ) {}
}

class Foo {
  constructor(
    protected name: string,
    protected age: number,
  ) {}
}

class Foo {
  constructor(
    public name: string,
    public age: number,
  ) {}
}

class Foo {
  constructor(name: string) {}
  constructor(
    private name: string,
    age?: number,
  ) {}
}

class Foo {
  constructor(private name: string) {}
  constructor(
    private name: string,
    age?: number,
  ) {}
}

class Foo {
  constructor(private name: string) {}
  constructor(
    private name: string,
    private age?: number,
  ) {}
}


class Foo {
  constructor(name: string) {}
  constructor(
    protected name: string,
    age?: number,
  ) {}
}

class Foo {
  constructor(protected name: string) {}
  constructor(
    protected name: string,
    age?: number,
  ) {}
}

class Foo {
  constructor(protected name: string) {}
  constructor(
    protected name: string,
    protected age?: number,
  ) {}
}

class Foo {
  constructor(name: string) {}
  constructor(
    public name: string,
    age?: number,
  ) {}
}

class Foo {
  constructor(public name: string) {}
  constructor(
    public name: string,
    age?: number,
  ) {}
}

class Foo {
  constructor(public name: string) {}
  constructor(
    public name: string,
    public age?: number,
  ) {}
}